#pragma once

#include "PLObject.h"

#include <vector>

class PLEdge;

/**
  *	A PLTriangle object consists of exactly three PLEdge objects, so that for all
  * the three PLEdge objects the following holds: The From-vertex is the To-vertex
  * of another PLEdge object.
  */
class PLTriangle : public PLObject
{
public:
	PLTriangle( const std::vector<PLEdge*> &edgeVector );
	~PLTriangle();

	const std::vector<PLEdge*> &GetEdges( void ) const;

	static const PLuint &GetNumTriangles( void );

private:
	/** Vector of pointers to the three PLEdge objects */
	std::vector<PLEdge*> mEdges;

	/** Currently instantiated number of PLTriangle objects */
	static PLuint numTriangles;
};